package com.itheima.mapper;

import com.itheima.pojo.Setmeal;
import com.itheima.vo.SetmealAndCateAndSetmealDishVO;
import com.itheima.vo.SetmealAndCategory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author 小帅蓝
 * @Date 2022/6/20 0:39
 */
@Mapper
public interface SetmealMapper {

    /**
     * 新增套餐
     *
     * @param setmeal 套餐类
     * @return 受影响行数
     */
    int addSetmeal(Setmeal setmeal);

    /**
     * 计算套餐总数
     *
     * @param name 套餐名称
     * @return 套餐总数
     */
    Integer getCount(String name);

    /**
     * 套餐分页查询
     *
     * @param name     套餐名称
     * @param offset   起始页
     * @param pageSize 每页显示条数
     * @return 套餐信息集合
     */
    List<SetmealAndCategory> queryAll(@Param("name") String name, @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);

    /**
     * 批量查询状态
     *
     * @param ids ids
     * @return List<Integer>
     */
    List<Integer> seleteStatus(@Param("ids") List<String> ids);

    /**
     * 逻辑批量删除菜品
     *
     * @param ids ids
     * @return 受影响行数
     */
    Integer deleteSetmeal(@Param("ids") List<String> ids);

    /**
     * 根据id获取套餐
     *
     * @param id 套餐id
     * @return SetmealAndCateAndSetmealDishVO
     */
    SetmealAndCateAndSetmealDishVO queryById(String id);

    /**
     * 修改套餐
     *
     * @param setmeal setmeal
     * @return 受影响行数
     */
    int updateSetmeal(Setmeal setmeal);

    /**
     * 套餐上架/下架
     *
     * @param ids    套餐id集合
     * @param status 套餐状态
     * @return 受影像行数
     */
    int updateStatus(@Param("ids") List<String> ids, @Param("status") Integer status);

    /**
     * 通过categoryId查询套餐列表 套餐列表（移动端）
     *
     * @param categoryId 菜品分类id
     * @param status     状态：0-停用，1-启用
     * @return List<SetmealAndCategory>
     */
    List<SetmealAndCategory> selectList(@Param("categoryId") String categoryId,
                                        @Param("status") Integer status);

}
